// 【跨域配置】
response.headers.set("Origin", domain);
response.headers.set("Timing-Allow-Origin", domain);
response.headers.set("Access-Control-Allow-Origin", domain);
response.headers.set("Vary", "Etag, Save-Data, Accept-Encoding") // Vary 头用于告知客户端在进行请求时需要考虑的头部字段。
response.headers.set("Access-Control-Allow-Headers", 'Authorization,Content-Type,Cache-Control,X-Token');
response.headers.set("Access-Control-Allow-Methods", '*');
response.headers.set("Access-Control-Allow-Credentials", true);  // 设置允许跨域携带凭证
response.headers.set("Access-Control-Expose-Headers", '*');
response.headers.set("Access-Control-Request-Method", '*');
response.headers.set("Access-Control-Request-Headers", '*');
// response.headers.set("Cross-Origin-Embedder-Policy", "require-corp") // 设置跨域嵌入策略
response.headers.set("Cross-Origin-Opener-Policy", "same-origin") // 设置跨域 opener 策略
response.headers.set("Cross-Origin-Resource-Policy", "cross-origin") // 设置跨域资源策略

// 【安全配置】
// response.headers.set("Content-Security-Policy", "default-src 'none'; script-src'self'; style-src'self'; img-src'self'; font-src'self'; connect-src'self'; frame-src'self'; media-src'self'; object-src'self'; manifest-src'self'; worker-src'self'; base-uri'self'; form-action'self'; frame-ancestors'self';")
//X-Permitted-Cross-Domain-Policies
response.headers.set("X-Permitted-Cross-Domain-Policies", "none") // 设置跨域策略
response.headers.set("Strict-Transport-Security", "max-age=31536000; includeSubDomains; preload") // 启用严格传输安全
response.headers.set("X-Frame-Options", "sameorigin") // 防止点击劫持
response.headers.set("X-XSS-Protection", "1; mode=block") // 防止 XSS 攻击
response.headers.set("Referrer-Policy", "origin-when-cross-origin") // 防止 referrer 泄漏
response.headers.set("X-Content-Type-Options", "nosniff") // 防止 MIME 类型嗅探
response.headers.set("X-DNS-Prefetch-Control", "auto") // 防止 DNS 预取取
response.headers.set("X-Download-Options", "noopen") // 防止下载时自动打开
response.headers.set("X-Frame-Options", "sameorigin") // 防止点击劫持 - 不允许从其他域加载 - 不允许被其它域iframe


// 【性能配置】
// response.headers.set("Accept-Ranges", "bytes") // 设置接受范围 [暂不支持]
// response.status.earlyHints() // 设置预加载
// response.headers.set("Link",'</font.ttf>; rel=preload; as=font') // 设置预加载字体
// response.headers.set("Link",'</image.png>; rel=preload; as=image') // 设置预加载图片
// response.headers.set("Link",'</audio.mp3>; rel=preload; as=audio') // 设置预加载音频
// response.headers.set("Link",'</video.mp4>; rel=preload; as=video') // 设置预加载视频
// response.headers.set("Link",'</style.css>; rel=preload; as=style') // 设置预加载样式
// response.headers.set("Link",'</script.js>; rel=preload; as=script') // 设置预加载脚本
// response.headers.set("Link",'</document.pdf>; rel=preload; as=document') // 设置预加载文档
// response.write('')

response.headers.set("Access-Control-Max-Age", "31536000") // 设置最大缓存预检时间为一年
// response.headers.set("Connection", "keep-alive") // 设置连接保持 *⚠️️ HTTP2 已标记该特性废弃
// response.headers.set("Keep-Alive", "timeout=60, max=1000") // 设置连接保持时间为60秒，最大连接数为1000 *⚠️️ HTTP2 已标记该特性废

// 设置为 time 后的一年过期
// time = new Date(time.getFullYear() + 1, time.getMonth(), time.getDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());
// timeStr = time.toUTCString()
// response.headers.set("Expires", timeStr)

response.headers.set("Cache-Control", "no-transform,no-siteapp,max-age=31536000") // 设置缓存时间为一年并屏蔽搜索引擎的预取

if (payload.get().headers['If-Match']) {
    response.headers.set("If-Match", payload.get().headers['If-Match'][0])
}

if (payload.get().headers['If-None-Match']) {
    response.headers.set("If-None-Match", payload.get().headers['If-None-Match'][0])
}

// 【其它配置】
response.headers.set("Alt-Svc", 'h2=":443"; ma=2592000;') // 设置服务端推送
response.headers.set("Alt-Used", 'h2=":443";') // 设置服务端推送
response.headers.set("X-Quic", 'h3')

response.headers.set("Accept-Ch", "Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version, DPR, Viewport-Width, Width, ETag, If-Match, If-None-Match") // 设置请求头

// 声明请求ID,同时声明SUID的节点编号 范围0-1023，当分布式服务时，避免SUID冲突。（SUID首次生成后既确定NODEID，后续的请求将使用该NODEID，重复声明的NODEID将被忽略）
response.headers.set('X-Request-Id', ex.suid(0).base58())